package exception;

/**
 * finally块是异常处理机制的最后一块,它可以直接跟在try之后或者最后一个catch之后
 * finally的特点:
 * 只要程序执行到try语句块中，如论是否出现异常，最终都要执行finally块。
 * 因此我们会将诸如释放资源这类操作放在finally中确保执行，例如IO操作后的close动作
 */
public class FinallyDemo {
    public static void main(String[] args) {
        System.out.println("程序开始了");
        try {
            String line = "";
//            String line = null;
            System.out.println(line.length());
            //try中某句代码出现错误后，剩余代码均不会执行
            System.out.println("!!!!!!!!!!!!!");
            return;//就算有return,也要先执行完finally方法才能真正返回。
        } catch (Exception e) {
            System.out.println("出错了");
        } finally {
            System.out.println("finally中的代码执行了");
        }

        System.out.println("程序结束了");
    }
}







